package colecciones.tests;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import colecciones.bloques.BloqueTest;
import colecciones.colecciones.MiColeccion;


public class FilterTest {
	@Test
	public void testFilter() {
		MiColeccion<Integer> miColeccion=new MiColeccion<Integer>();
		miColeccion.add(1).add(2).add(3).add(4).add(5).add(6).add(7).add(8).add(9).add(10);
		
		MiColeccion<Integer> coleccionFiltrada=miColeccion.filter(new BloqueTest<Integer>() {
			@Override
			public boolean test(Integer unNro) {
				// Nos quedamos s�lo con los divisores de 3.
				return unNro % 3 == 0;
			}
		});
		assertEquals("El primer elemento debe ser 3", new Integer(3), coleccionFiltrada.get(0));
		assertEquals("El segundo elemento debe ser 6", new Integer(6), coleccionFiltrada.get(1));
		assertEquals("El tercer elemento debe ser 9", new Integer(9), coleccionFiltrada.get(2));
		assertEquals("La coleccion debe tener 3 elementos", 3, coleccionFiltrada.size());
	}
}
